// 高阶组件
// 原理：以要控制的路由组件为参数 传入 在内部做是否有token的判断
// 如果token存在 就return 实际的组件 否则就做重定向组件跳转 跳转到登录
import type { ReactChild, ReactChildren } from 'react'
import { getToken } from '@/utils/token'
import { Navigate } from 'react-router-dom'

type Props = {
  children: ReactChild | ReactChildren
}

const Auth = ({ children }: Props) => {
  const token = getToken()?.token
  if (!token) {
    return <Navigate to="/login" replace></Navigate>
  } else {
    return <>{children}</>
  }
}

export { Auth }
